home *** CD-ROM | disk | FTP | other *** search
-
- /*© Copyright 1992 UserLand Software, Inc. All Rights Reserved.*/
-
- #define optoolkitinclude /*so other modules can tell that we've been included*/
-
-
- typedef enum opLineSpacing {
-
- opSinglespaced = 1,
-
- opOneandalittlespaced = 2,
-
- opOneandaquarterspaced = 3,
-
- opOneandahalfspaced = 4,
-
- opDoublespaced = 5,
-
- opTriplespaced = 6
- } opLineSpacing;
-
-
- typedef enum opDirection { /*used to navigate and reorganize outlines*/
-
- opNoDirection = 0,
-
- opUp = 1,
-
- opDown = 2,
-
- opLeft = 3,
-
- opRight = 4,
-
- opFlatup = 5,
-
- opFlatdown = 6
- } opDirection;
-
-
- typedef struct tyheadrecord {
-
- StringHandle hstring; /*the text of the headline*/
-
- struct tyheadrecord **headlinkdown, **headlinkup, **headlinkleft, **headlinkright;
-
- short headlevel; /*summits are at level 0, their children at level 1*/
-
- Boolean flexpanded: 1; /*is this line expanded?*/
-
- Boolean fldirty: 1; /*is this line in need of display?*/
-
- Boolean flcomment: 1; /*is this line a comment?*/
-
- Boolean flbreakpoint; /*in a script, is a breakpoint set here?*/
-
- Boolean tmpbit: 1; /*use this for anything you like*/
-
- Handle headrecordrefcon; /*you can link anything you like into a headrecord*/
- } tyheadrecord, *ptrheadrecord, **hdlheadrecord;
-
-
- typedef struct tyoutlinerecord {
-
- hdlheadrecord hsummit; /*the first summit of the structure*/
-
- hdlheadrecord hbarcursor; /*the line the bar cursor is on*/
-
- hdlheadrecord hline1; /*this node is displayed on the 0th line in the window*/
-
- short lnumbarcursor; /*line number that the bar cursor is on, may be off screen*/
-
- short ctexpanded; /*number of nodes expanded*/
-
- short fontnum, fontsize, fontstyle; /*the display fontsizestyle*/
-
- short lineindent; /*how many pixels to indent for each level*/
-
- opLineSpacing linespacing; /*indicates number of pixels to add to each line*/
-
- Rect outlinerect; /*the rectangle that the outline is displayed in*/
-
- Rect windowrect; /*the size and position of window that last displayed outline*/
-
- short vertmin, vertmax, vertcurrent; /*vertical scrollbar info*/
-
- short horizmin, horizmax, horizcurrent; /*horiz scrollbar info*/
-
- long timecreated, timelastsave; /*the time and date the outline was created/last saved*/
-
- long ctsaves; /*the number of times this outline has been saved*/
-
- long outlinerefcon; /*for use by application*/
- } tyoutlinerecord, *ptroutlinerecord, **hdloutlinerecord;
-
-
- typedef Boolean (*opvisitcallback) (hdlheadrecord); /*callback for the visit routines*/
-
-
- extern hdloutlinerecord outlinedata; /*all OS Toolkit routines operate off this global*/
-
-
- /*function prototypes -- creating and disposing outline records*/
-
- pascal Boolean opNewOutlineRecord (hdloutlinerecord *);
-
- pascal void opDisposeOutlineRecord (hdloutlinerecord);
-
-
- /*setting the current outline*/
-
- pascal Boolean opSetTarget (hdloutlinerecord);
-
- pascal Boolean opPushOutline (hdloutlinerecord);
-
- pascal Boolean opPopOutline (void);
-
-
- /*sending and receiving outline structures thru Apple Events*/
-
- pascal Boolean IACgetoutlineparam (OSType, hdloutlinerecord *);
-
- pascal Boolean IACpushoutlineparam (hdloutlinerecord, OSType);
-
- pascal Boolean IACreturnoutline (hdloutlinerecord);
-
-
- /*packing/unpacking outlines into/from contiguous handles*/
-
- pascal Boolean opPack (Handle *);
-
- pascal Boolean opUnpack (Handle, long *);
-
-
- /*navigating thru an outline structure*/
-
- pascal Boolean opGo (hdlheadrecord *, opDirection);
-
-
- /*getting and setting headline strings*/
-
- pascal void opGetHeadString (hdlheadrecord, Str255);
-
- pascal Boolean opSetHeadString (hdlheadrecord, Str255);
-
-
- /*structure editing*/
-
- pascal Boolean opAddHeadline (hdlheadrecord, opDirection, Str255, hdlheadrecord *);
-
- pascal void opUnlink (hdlheadrecord);
-
- pascal void opDisposeStructure (hdlheadrecord);
-
- pascal Boolean opDeposit (hdlheadrecord, opDirection, hdlheadrecord);
-
- pascal Boolean opPromoteSubheads (hdlheadrecord);
-
-
- /*getting information about a headrecord*/
-
- pascal Boolean opIsFirstInList (hdlheadrecord);
-
- pascal Boolean opIsLastInList (hdlheadrecord);
-
- pascal Boolean opHasSubheads (hdlheadrecord);
-
- pascal Boolean opSubheadsExpanded (hdlheadrecord);
-
- pascal Boolean opIsSubordinateTo (hdlheadrecord, hdlheadrecord);
-
- pascal Boolean opIsNestedInComment (hdlheadrecord);
-
- pascal hdlheadrecord opGetAncestor (hdlheadrecord, short);
-
- pascal hdlheadrecord opGetLastSubhead (hdlheadrecord);
-
- pascal hdlheadrecord opGetNthSubhead (hdlheadrecord, short);
-
- pascal hdlheadrecord opGetNthSummit (short);
-
- pascal hdlheadrecord opGetLastExpanded (hdlheadrecord);
-
- pascal hdlheadrecord opGetFirstAtLevel (hdlheadrecord);
-
- pascal short opGetSiblingNumber (hdlheadrecord);
-
-
- /*counting things*/
-
- pascal short opCountAtLevel (hdlheadrecord);
-
- pascal short opCountSummits (void);
-
- pascal short opCountSubs (hdlheadrecord);
-
- pascal short opCountAllHeads (void);
-
-
- /*traversing the outline*/
-
- pascal Boolean opVisitOutline (opvisitcallback visit);
-
- pascal Boolean opRecursivelyVisit (hdlheadrecord, short, opvisitcallback);
-
- pascal Boolean opRecursivelyVisitKidsFirst (hdlheadrecord, short, opvisitcallback);
-
- pascal Boolean opSiblingVisiter (hdlheadrecord, Boolean, opvisitcallback);
-
-
- /*miscellaneous routines*/
-
- pascal void opResetLevels (hdlheadrecord);
-
- pascal short opSetCountExpanded (void);
-
-
-
-
-
-
-
-